Guava লাইব্রেরি Java প্রোগ্রামিংয়ে ফাইল I/O (Input/Output) পরিচালনার জন্য বেশ কিছু শক্তিশালী টুল সরবরাহ করে, যা ফাইল সম্পর্কিত বিভিন্ন কার্যকলাপ যেমন ফাইল পড়া, লেখা, কপি করা, ডিরেক্টরি পরিচালনা করা ইত্যাদি সহজ ও কার্যকর করে তোলে। Guava-এর Files ক্লাস এবং অন্যান্য I/O সরঞ্জামগুলি ব্যবহার করে Java-তে ফাইল ব্যবস্থাপনা দ্রুত ও সহজ করা যায়।
Guava Files ক্লাস
Guava এর Files ক্লাসটি বিভিন্ন ফাইল অপারেশন যেমন ফাইল তৈরি, ফাইল কপি, ফাইল ডিলিট, ফাইল কনটেন্ট পড়া/লেখা ইত্যাদি পরিচালনার জন্য বিভিন্ন সহায়ক মেথড প্রদান করে। এই ক্লাসের সাহায্যে আপনি ফাইল I/O কাজগুলো কম কোডে এবং আরও নির্ভরযোগ্যভাবে সম্পন্ন করতে পারেন।
Files ক্লাসের প্রধান মেথডসমূহ
ফাইলের কনটেন্ট পড়া
Guava-এর Files.readLines() মেথডের সাহায্যে একটি ফাইলের সমস্ত লাইন একটি লিস্টে (List) পড়া যায়।
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class FileReadExample {
public static void main(String[] args) throws IOException {
File file = new File("example.txt");
// Read all lines from the file
List<String> lines = Files.readLines(file, java.nio.charset.StandardCharsets.UTF_8);
// Print the lines
for (String line : lines) {
System.out.println(line);
}
}
}
ফাইল লেখা
Guava-এর Files.write() মেথডের মাধ্যমে সহজেই ফাইলের কনটেন্ট লেখা যায়।
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Arrays;
public class FileWriteExample {
public static void main(String[] args) throws IOException {
File file = new File("output.txt");
// Write a list of strings to the file
List<String> lines = Arrays.asList("Hello, world!", "Welcome to Guava file I/O.");
Files.write(lines, file, java.nio.charset.StandardCharsets.UTF_8);
System.out.println("Data written to file.");
}
}
ফাইল কপি করা
Guava এর Files.copy() মেথড ব্যবহার করে একটি ফাইলের কপি তৈরি করা যেতে পারে।
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
public class FileCopyExample {
public static void main(String[] args) throws IOException {
File sourceFile = new File("example.txt");
File destFile = new File("copy_example.txt");
// Copy the file
Files.copy(sourceFile, destFile);
System.out.println("File copied successfully.");
}
}
ফাইল বা ডিরেক্টরি মুছে ফেলা
Guava এর Files.delete() মেথড ব্যবহার করে ফাইল বা ডিরেক্টরি মুছে ফেলা যেতে পারে।
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
public class FileDeleteExample {
public static void main(String[] args) throws IOException {
File file = new File("output.txt");
// Delete the file
Files.delete(file);
System.out.println("File deleted successfully.");
}
}
ডিরেক্টরি তৈরি করা
Guava এর Files.createParentDirs() মেথডের সাহায্যে একটি ডিরেক্টরি তৈরি করা যায়। এটি যদি ডিরেক্টরি আগে থেকেই না থাকে, তাহলে নতুন ডিরেক্টরি তৈরি করবে।
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
public class DirectoryCreateExample {
public static void main(String[] args) throws IOException {
File file = new File("newdir/example.txt");
// Create parent directories if they do not exist
Files.createParentDirs(file);
System.out.println("Parent directories created.");
}
}
Guava Files ক্লাসের অন্যান্য সহায়ক মেথড
ফাইলের আকার (Size) পাওয়া
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
public class FileSizeExample {
public static void main(String[] args) throws IOException {
File file = new File("example.txt");
// Get the size of the file in bytes
long size = Files.asByteSource(file).size();
System.out.println("File size: " + size + " bytes");
}
}
ফাইল কনটেন্ট অ্যাপেন্ড করা
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Arrays;
public class FileAppendExample {
public static void main(String[] args) throws IOException {
File file = new File("output.txt");
// Append content to the file
List<String> newContent = Arrays.asList("Appending new data.");
Files.append(newContent, file, java.nio.charset.StandardCharsets.UTF_8);
System.out.println("Data appended to file.");
}
}
Guava এর File I/O এর সুবিধা
- সহজ ইন্টারফেস: Guava ফাইল I/O পরিচালনার জন্য সহজ এবং পাঠযোগ্য API সরবরাহ করে।
- একক লাইনে অনেক কাজ: ফাইলের কনটেন্ট পড়া, লেখা, কপি বা ডিলিট করার মতো কাজগুলি খুব সহজে এক লাইনে করা যায়।
- ডিরেক্টরি এবং ফাইল ম্যানেজমেন্ট: ফাইল ও ডিরেক্টরি সম্পর্কিত সাধারণ কাজগুলি সহজে পরিচালনা করা যায়।
- ক্রস-প্ল্যাটফর্ম সাপোর্ট: Guava Java এ ফাইল I/O পরিচালনায় প্ল্যাটফর্ম-নিরপেক্ষ সমাধান প্রদান করে।
Guava এর File I/O এর সীমাবদ্ধতা
- অতিরিক্ত নির্ভরতা: Guava লাইব্রেরি ব্যবহারের জন্য অতিরিক্ত নির্ভরতা থাকতে হয়, যা প্রকল্পের আকার বাড়াতে পারে।
- Java NIO এর তুলনায় কিছু সীমাবদ্ধতা: যদিও Guava ফাইল I/O এর জন্য শক্তিশালী সরঞ্জাম প্রদান করে, তবে Java NIO এর তুলনায় কিছু উচ্চমানের কার্যকারিতা এতে নেই।
Guava লাইব্রেরি Java-তে ফাইল I/O সহজ, দ্রুত এবং কার্যকরভাবে পরিচালনা করতে সাহায্য করে। এর সহজ ইন্টারফেস এবং শক্তিশালী ফিচারগুলো ডেভেলপারদের ফাইল সম্পর্কিত কাজগুলো অনেক দ্রুত সম্পন্ন করতে সহায়তা করে।
Read more